hashmap :: 자주 쓰이는 메소드및 API 를 정리합니다.[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

자주 쓰이는 메소드및 API 를 정리합니다.
[1]
등록일:2008-03-09 14:26:53 (0%)
작성자:
제목:hashmap
기본적인  동작은  HashTable이나  HashMap은  같습니다.

즉    Key  object  -  Value  object  를  쌍으로  저장하여  seek타임을  줄이기  위해  hash값을  이용합니다.

  

Hashtable

Hashtable  은  키나  값에  Null을  허용하지  않습니다.

또한  Object에  정의된  hashCode()와  equals()메소드를  재의하는  객체들만  저장할  수  있습니다.

다행히도  자바  내장  클래스들은  대부분  hashCode()구현되어  있다는  것을  아실겁니다.

특히  String  타입이  hashCode(),  equals()메소드  두개  모두  구현되어  있지요.

  

Hashtable은  Map  클래스와  마찬가지로  반복자(interator)를  직접제공  하지  않습니다

다음  두가지  방식으로  HashTable  내용을  출력합니다.

  

Hashtable  hashtable  =  new  Hashtable();

hashtable.put("jakarta",  "project");

hashtable.put("apache",  "tomcat");

  

Enumertaion  keys  =  hashtable.keys();

while(keys.hasMoreElements())  {

      key  =  (String)keys.nextElement();

      System.out.println(hashtable.get(key));

}

  

혹은

Set  set  =  hashtable.keySet();

Iterator  keys  =  set.interator();

while(keys.hasNext())  {

      key  =  (String)keys.next();

      System.out.println(hashtable.get(key));

}

  

HashMap

HashMap은  키나  값에  Null을  허용  합니다.

HashMap  출력방법은  다음  한가지  이네요.  (Enumeration  지원  안함)

  

HashMap  hashmap  =  new  HashMap();

hashmap.put("jakarta",  "project");

hashmap.put("apache",  "tomcat");

  

Set  set  =  hashmap.entrySet();

Iterator  keys  =  set.iterator();

while  (keys.hasNext())  {

      key  =  (String)keys.next();

      System.out.println(hashmap.get(key));

}

  

또한  Hashtable은  thread  safe  한  객체이지만  HashMap은  그렇지  못해  unsynchronized  합니다.

이말은  즉  멀티  쓰레드  환경이  아니면  HashMap을  쓰면  속도가  빠르다는  말입니다.

굳이  동기화  하자면  다음과  같이  사용해야  겠지요

Map  m  =  Collections.synchronizedMap(new  HashMap(...));

  

간단히  정리하자면

HashMap이  HashTable에  비해  좀더  실용적으로  변한  형태라고  보면  되겠네요  ^^

[출처]  hashmap|작성자  그남자
http://blog.naver.com/yypil79?Redirect=Log&logNo=10027702076
[본문링크] hashmap
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=2417
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.